//Copyright (c) 2012-2013 The cwkshell Authors. All rights reserved. 
// Use of this source code is governed by a BSD-style license that can be 
// found in the LICENSE file. 
#ifndef CUC_CWKSHELL_APP_SHELL_PROPERTY_H_ 
#define  CUC_CWKSHELL_APP_SHELL_PROPERTY_H_ 
#include <string>
#include <vector>

#include "googleurl/src/gurl.h"

namespace cuc{ 
	namespace shell{ 
		class ShellProperty{
		public:

			typedef std::pair<std::wstring,std::string> TitleUrl;
			typedef std::vector<TitleUrl> TitleUrls;

			ShellProperty();
			~ShellProperty();
			ShellProperty(const ShellProperty& other);

			void Init();

			TitleUrls GetTitleUrls(){return title_urls_;}
			GURL GetHomePageUrl(){return GURL(homepage_url_);}
			int GetContainerHeight(){return container_height_;}
			int GetContainerWidth(){return container_width_;}
			bool IsMaxsize(){return is_maxsize_;}
			bool IsFullScreen(){return is_fullscreen_;}
			std::wstring GetAppName(){return app_name_;}
			bool HasTitleButton(){return has_title_button_;}
			int GetTitleBarHeight(){return title_bar_height_;}
			std::string GetTitleButtonFont(){return title_button_font_;}
			int GetTitleButtonHeight(){return title_button_height_;}
			int GetTitleButtonFontSize(){return title_button_font_size_;}

			int GetChildWindowInitHeight(){return child_window_init_height_;}
			int GetChildWindowInitWidth(){return child_window_init_width_;}
			bool GetChildWindowIsMaxSize(){return child_window_is_maxsize_;}
			bool GetChildWindowIsFullScreen(){return child_window_is_fullscreen_;}

			int GetDialogInitWidth(){return dialog_init_width_;}
			int GetDialogInitHeight(){return dialog_init_height_;}

		private:


			void ReadProperty();

			int container_height_;
			int container_width_;
			std::string homepage_url_;
			std::wstring app_name_;
			TitleUrls title_urls_;
			bool is_maxsize_;
			bool is_fullscreen_;
			bool has_title_button_;
			int title_bar_height_;
			std::string title_button_font_;
			int title_button_font_size_;
			int title_button_height_;

			//childwindow:
			int child_window_init_width_;
			int child_window_init_height_;
			bool	child_window_is_fullscreen_;
			bool	child_window_is_maxsize_;
			//dialog:
			int dialog_init_width_;
			int dialog_init_height_;
		};
	} //namespace shell 
} //namespace cuc 
#endif //CUC_CWKSHELL_APP_SHELL_PROPERTY_H_ 
